home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-10-09 | 2.6 KB | 114 lines | [TEXT/CWIE] |
- // ===========================================================================
- // CTridentView.cp ©1993 Metrowerks Inc. All rights reserved.
- // ===========================================================================
- //
-
- #include "CTridentView.h"
- #include "CTridentApp.h"
- #include "CTridentCmds.h"
- #include "CTridentIdler.h"
- #include "TridentAESuite.h"
- #include <LStream.h>
-
- #ifndef __TOOLUTILS__
- #include <ToolUtils.h>
- #endif
-
- //==============================view stuff====================================
-
- CTridentView*
- CTridentView::CreateTridentViewStream(
- LStream *inStream)
- {
- return (new CTridentView(inStream));
- }
-
- CTridentView::~CTridentView()
- {
- if (fHeartBeatMonitor)
- fHeartBeatMonitor->StopIdling();
- delete fHeartBeatMonitor;
-
- }
-
-
- CTridentView::CTridentView(
- LStream *inStream)
- : LListBox(inStream)
- {
- CHeartBeatIdler *HeartBeatMonitor = new CHeartBeatIdler();
- // CHeartBeatIdler *HeartBeatMonitor = new CHeartBeatIdler(TRUE);
- ThrowIfNULL_(HeartBeatMonitor);
- fHeartBeatMonitor = HeartBeatMonitor; //not idling until connected!
- fHeartBeatMonitor->SetOwnerView(this);
- fLegacyCompatable = FALSE;
- this->ResetTicks();
- }
-
- /*Boolean
- CTridentView::DoSomethingWillYa(
- CommandT inCommand ,
- void *ioParam )
- {
- return FALSE; //not handled
- }
- */
-
- void
- CTridentView::ResetTicks( )
- {
- if (fHeartBeatMonitor)
- fHeartBeatMonitor->ResetTicks();
- }
-
- void
- CTridentView::SendHeartBeat()
- {
- AppleEvent heartappleEvent;
- long clientSessionID = (long) ((CTridentWindow*) mSuperView)->fPortRefNum;
- AEAddressDesc& theAddress = ((CTridentWindow*) mSuperView)->fAEAddressDesc;
- OSErr err = AECreateAppleEvent(kAEAUXSuite, kAEHeartBeat, &theAddress, kAutoGenerateReturnID, kAnyTransactionID, &heartappleEvent);
- err = ::AEPutParamPtr(&heartappleEvent, 'ssID',typeLongInteger,(Ptr)&clientSessionID,sizeof(long));
- UAppleEventsMgr::SendAppleEvent(heartappleEvent, TRUE);
- this->ResetTicks();
- }
-
-
- void
- CTridentView::HandleAppleEvent(
- const AppleEvent &inAppleEvent ,
- AppleEvent &outAEReply ,
- AEDesc &outResult ,
- long inAENumber)
- {
- switch (inAENumber) {
-
- case 407:
- if (fHeartBeatMonitor)
- this->ResetTicks();
-
- if (fLegacyCompatable)
- this->SendHeartBeat(); //basically use the server's time keeping
- //yeah this could be cleaner but to make it simple as an example AND backwards
- //compatable with the Appletalk Services Demo #1 host daemon, this is what you get.
-
- break;
- }
- }
- void
- CTridentView::FindCommandStatus(
- CommandT inCommand,
- Boolean &outEnabled,
- Boolean &outUsesMark,
- Char16 &outMark,
- Str255 outName)
- {
-
- //handled by subclass!
- }
-
- void CTridentView::SendInterval(long seconds)
- {
- // handled by subclass
- }
-